1. Field of the Invention
The present invention relates to encoding and decoding apparatuses, and more particularly, to encoding and decoding apparatuses for reducing the quantization error of a G.711 codec and improving sound quality.
2. Description of the Related Art
In general, it is difficult to directly apply techniques for digitalizing analog audio data simply through sampling to various fields of application with a relatively narrow bandwidth. For example, if an audio signal is sampled at a frequency of 8 kHz and is quantized with 16 bits, a bitrate of 128000 bps may be obtained. Most audio 06FEEL014US04communication networks adopt a codec apparatus for compressing and restoring audio signals in order to effectively transmit audio signals at low bitrate.
There are various methods of compressing and restoring audio signals such as pulse code modulation (PCM) or code-excited linear prediction (CELP). PCM is characterized by compressing audio samples with a predefined number of bits per sample, and CELP is characterized by processing audio data in units of blocks and compressing the audio data using a speech production model. Various types of codecs have been developed and standardized for use in various fields of application. In particular, logarithmic PCM codecs, which are one of the most widespread codecs and generally used in the fields of public switched telephone network (PSTN) wired telecommunication and Internet telecommunication, may vary a quantization level according to the size of an input signal. That is, logarithmic PCM codecs may use a low quantization level for a low-level input signal and a high quantization level for a high-level input signal. By using a logarithmic PCM codec, it is possible to compress a 16-bit digital sample into an 8-bit sample. Therefore, a bitrate of 64,000 bps may be obtained by performing sampling at a frequency of 8 KHz using logarithmic PCM. There are largely two logarithmic quantization algorithms: the μ-law algorithm and the A-law algorithm. The μlaw algorithm and the A-law algorithm may be defined by Equations (1):
                                                        C              μ                        ⁡                          (                                              x                                            )                                =                                                    log                10                            ⁡                              (                                  1                  +                                      μ                    ⁢                                                                x                                                                                            )                                                                    log                10                            ⁡                              (                                  1                  +                  μ                                )                                                    ⁢                                  ⁢                                            C              A                        ⁡                          (                                              x                                            )                                =                      {                                                                                                                              log                        10                                            ⁡                                              (                                                  A                          ⁢                                                                                  x                                                                                                      )                                                                                                            log                        10                                            ⁡                                              (                        A                        )                                                                                                                                                        for                      ⁢                                                                                          ⁢                                                                      x                                                                                      >                                          1                      A                                                                                                                                                              A                      ⁢                                                                      x                                                                                                            1                      +                                                                        log                          10                                                ⁡                                                  (                          A                          )                                                                                                                                                                                for                      ⁢                                                                                          ⁢                                                                      x                                                                                      ≤                                          1                      A                                                                                                                              (        1        )            where x indicates an input sample, μ and A are constants corresponding to the μ-law algorithm and the A-law algorithm, C( ) indicates a compressed sample obtained using the μ-law algorithm or the A-law algorithm, and |x| indicates the absolute value of the input sample x.
The μ-law algorithm and the A-law algorithm were standardized as G711 in 1972 by the International Telecommunication Union Telecommunication Sector (ITU-T). Referring to Equations (1), the constants μ and A are 255 and 87.56, respectively. In reality, G.711 codecs generally use floating point quantization, instead of performing computation, as indicated by Equations (1). Some of the available bits (for example, 8 bits in the case of G.711) of each sample may be used to determine a quantization level, and the other available bits may be used to represent position in the quantization level. The available bits used to determine a quantization level are referred to as exponent bits, and the available bits used to determine position in a quantization level are referred to as mantissa bits. In the A-law algorithm, three bits of each 8-bit sample are used to represent exponent information, four bits to represent mantissa information, and one bit to represent the sign of a corresponding sample.
G.711 codecs can provide excellent sound quality rated a mean opinion score (MOS) of at least 4 for narrow-band audio data sampled at a frequency of 8 KHz, and requires only minimal amounts of computation and storage. However, G.711 codecs may still suffer from poor sound quality due to quantization error.